
public class Main {
	/**
	 * About Program:
	 * 		Overriding is always discussed with regards to two objects, those are: parent object and chaild object
	 * 		FourWheeler is a class which has two methods: start and stop
	 * 		fourWheeler holds an instance of FourWheeler
	 * 		car holds an instance of Car
	 * 		fourWheeler2 holds an instance of Car	(base on the OOP principal, i.e: A parent class object can hold the instance of chaild class)
	 * 
	 * 		fourWheeler2.start() method is called, it calles the start method in the Class "Car"
	 * 		from the compile poit of view calls the FourWheeler 's start method
	 * 		Since fourWheeler2 hold the "Car" class instance, at run time when fourWheeler2.start() method executes start method, depending on the instance of the class held by fourWheeler2 
	 *  
	 */

	public static void main(String []args) {
		
		FourWheeler fourWheeler = null;
		FourWheeler fourWheeler2 = null;
		
		Car car = null;
		
		fourWheeler = new FourWheeler();
		car = new Car();
		fourWheeler2 = new Car();
		
		fourWheeler.start();
		car.start();
		fourWheeler2.start();
		
		fourWheeler.stop();
		car.stop();
		fourWheeler2.stop();
		
		System.out.println("Thanks for using");
	}
}
